Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to topological faces bounded by edges. Hereinafter, the terms vertex, edge, and face will be used interchangeably with their respective, corresponding geometric entities.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly or an assembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
In general, a CAD model consists of various features. Examples of features are an extrusion, a revolve, and a sweep. An extrusion feature results from an extrusion operation, which extrudes one or more entities of a 3D model or a two-dimensional (2D) sketch. (After extruding a 2D sketch, a 3D model is created.) A revolve feature results from a revolve operation, which revolves one or more entities about a centerline. A sweep feature results from a sweep operation, which moves one or more entities along a path.
A common approach to building CAD models is history-based modeling, in which the modeling process may begin by creating a base feature controlled by a two-dimensional sketch, which then may be extruded using, by way of non-limiting example, an extrude, a revolve, or a sweep operation. Each subsequent feature of a model of a part is built on a previous feature, and therefore is dependent on a previously created feature. When the user edits a feature of the history-based model, the model is rolled back to a previous state (e.g., the state prior to the creation of subsequent dependent features). The user can then modify the feature and may need to re-create all subsequent dependent features.
Extrude, revolve, and sweep are typically separate features in a CAD system. Yet, these features may be defined by the same set of parameters, profile, and/or path. Therefore, as separate features, the user interface and workflow have redundancies. Additionally, a problem arises when a user wants to change his or her design and use a different feature to create geometry. The user may need to delete the feature and as a result downstream features may fail. The user then creates the new feature, and then must repair the downstream features. The present invention addresses these drawbacks.